home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Programming Languages Suite
/
ProgramD2.iso
/
Borland
/
Borland C++ V5.02
/
CLASSSRC.PAK
/
MAKEFILE
< prev
next >
Wrap
Text File
|
1997-05-06
|
23KB
|
935 lines
#-----------------------------------------------------------------------------
# MAKEFILE for Class Libraries
# Copyright (c) Borland International 1991, 1996, All Rights Reserved
#
# $Revision: 5.51 $
#
# Defines:
# -DDOS, -DWIN32, -DOS2 Specifies target system
# (DOS implies WIN16 for Windows specific classes)
# -DMT Build multi-thread version
# -DVCL builds OWL using the VCL-compatible RTL (cp32mt)
# (implies -DMT and -DNAMESPACE;
# requires MODEL=t and WIN32)
# MODEL=<s|c|m|l|h> Specifies memory model for DOS library.
# Required when building DOS library.
# BIDSNAME=xxx Base name of the target library or DLL
# Always required.
# BIDSDLLNAME=xxx Overrides base name of target for DLLs only
# BIDSVER=xxx Base name of the target library or DLL
# -DDLL Build a DLL.
# -DDIAGS Build the diagnostic version of the target.
# -DOBJECTS Also build the object-based containers
# -DBIDSFARVTABLE Moves class vtables out of dgroup
# CODEGUARD Builds classlib with CodeGuard:
# 1=basic data, 2=full checking
# NAMESPACE builds BIDS within a namespace "ClassLib"
# ALIGN=<1|2|4|8> Specifies the alignment
# BCC32I Uses bcc32i instead of bcc32 to compile
# ILINK Uses ILINK32 instead of TLINK32 to link
# -DBI_REDEFINE_BOOL Builds library with BOOL mapped to bool
#
# 16-bit non-diagnostic static libraries:
# make -r -DDOS MODEL=s BIDSNAME=bids
# make -r -DDOS MODEL=c BIDSNAME=bids
# make -r -DDOS MODEL=m BIDSNAME=bids
# make -r -DDOS MODEL=l BIDSNAME=bids
# make -r -DDOS MODEL=h BIDSNAME=bids
#
# 16-bit diagnostic static libraries:
# make -r -DDOS MODEL=s -DDIAGS BIDSNAME=bids
# make -r -DDOS MODEL=c -DDIAGS BIDSNAME=bids
# make -r -DDOS MODEL=m -DDIAGS BIDSNAME=bids
# make -r -DDOS MODEL=l -DDIAGS BIDSNAME=bids
# make -r -DDOS MODEL=h -DDIAGS BIDSNAME=bids
#
# 16-bit DLLs:
# make -r -DDOS -DDLL BIDSNAME=bids
# make -r -DDOS -DDLL -DDIAGS BIDSNAME=bids
#
# WIN32 libraries:
# make -r -DWIN32 BIDSNAME=bidsf
# make -r -DWIN32 -DDIAGS BIDSNAME=bids
#
# WIN32 DLLs:
# make -r -DWIN32 -DDLL BIDSNAME=bids
# make -r -DWIN32 -DDLL -DDIAGS BIDSNAME=bids
#
# OS/2 libraries:
# make -r -DOS2 BIDSNAME=bids
# make -r -DOS2 -DDIAGS BIDSNAME=bids
#
# OS/2 DLLs:
# make -r -DOS2 -DDLL BIDSNAME=bids
# make -r -DOS2 -DDLL -DDIAGS BIDSNAME=bids
#
# Define these for alternate BIDS build directories:
# BIDSSRCDIR defaults to: $(BCROOT)\source\CLASSL
# BIDSINCDIR defaults to: $(BCROOT)\include
# BIDSLIBDIR defaults to: $(BCROOT)\lib
# BIDSBINDIR defaults to: $(BCROOT)\bin
#
# When building VCL-compatible libraries, the makefile defaults
# assume BCROOT points to the base of the C++Builder tree. If
# you are building in the context of Borland C++, then you must
# set BCBROOT explicitly yourself.
#
# BCBROOT defaults to: $(BCROOT) (root of C++Builder)
# VCLINCDIR defaults to: $(BCBROOT)\include\VCL
# VCLOBJDIR defaults to: $(BCBROOT)\lib\obj
# VCLLIBDIR defaults to: $(BCBROOT)\lib
#-----------------------------------------------------------------------------
.autodepend
.cacheautodepend
.swap
#
# If no model is defined or implied, set a default
#
!if !$d(MODEL) && !$d(DOS) && !$d(WIN16) && !$d(OS2) && !$d(VCL)
MODEL = f # default build model = flat static, Win32
# MODEL = d # default build model = flat DLL, Win32
!endif
#
# If no system was set, choose one
#
!if (!$d(WIN32) && !$d(WIN16) && !$d(OS2))
! if $(MODEL) == d
DLL = 1 # model d means to build the DLL model
WIN32 = 1 # 32bit DLL
! elif ($(MODEL) == t || $(MODEL) == f || $(VCL)) && !$d(OS2)
WIN32 = 1 # must use WIN32 switch for flat, threaded, or VCL
! endif
!endif
#
# For multithreaded target, set the value of MT
#
!if $(MODEL) == t || $d(MT) || $d(VCL)
MT = mt # model t implies MT. Use MT as 'mt' to build library names
!endif
#
# VCL compatibility implies use of namespace
#
!if $d(VCL)
NAMESPACE = 1
!endif
#
# Make sure model is consistent with system
#
!if $d(WIN32)
! if $d(MT) || $d(VCL)
MODEL = t
! else
MODEL = f
! endif
!elif $d(OS2)
MODEL = 2
!else
! if $d(DLL)
MODEL = l
! endif
! if !$d(DOS)
DOS = 1
! endif
! if !$d(WIN16)
WIN16 = 1
! endif
!endif
#
# Figure out default data alignment based on target
#
!if !$d(ALIGN)
! if $d(WIN32)
ALIGN = 1
! else
ALIGN = 1
! endif
!endif
#
# Check for incompatible choices and warn user
#
!if $d(VCL)
! if !$d(WIN32) || $(MODEL) != t
! error VCL-compatible library must be multithreaded 32-bit
! endif
!endif
!if $d(DOS) && $d(MT)
! error Cannot build multi-thread library for DOS.
!endif
!if $d(MODEL)
! if $(MODEL)!=s && $(MODEL)!=c && $(MODEL)!=m && $(MODEL)!=l && $(MODEL)!=h && $(MODEL)!=f && $(MODEL)!=t
! error MODEL must be s, c, m, l, h, f or t
! endif
!endif
!if $d(ILINK) && $d(WIN16)
! error Cannot build 16-bit targets with ILINK.
!endif
#--------------------------------------------------------------------
# dir & name components
#--------------------------------------------------------------------
!if $d(DLL)
! if !$d(BIDSNAME) && !$d(DIAGS)
! error MUST DEFINE LIBRARY NAME, e.g. "MAKE MODEL=d BIDSNAME=YourName"
! endif
! if !$d(BIDSDLLNAME)
BIDSDLLNAME= $(BIDSNAME)
!endif
! if $d(WIN32)
! if $d(VCL)
KEY = vi # compatible with VCL (e.g. BDS52VI.LIB)
! else
KEY = $(MODEL)i # Win32 flat or multithread DLL import library
! endif
! elif $d(OS2)
KEY = i$(MODEL) # OS2 DLL import library
! else
KEY = i # Dos/Win16 DLL import library
! endif
!else
! if $d(VCL)
KEY = v # Compatible with VCL (e.g. BIDSV.LIB)
! else
KEY = $(MODEL) # Static library just uses model
! endif
!endif # if/else $d(DLL)
#! if $d(USERDLL)
# KEY = $(KEY)u # Static or import library for use by dlls
#! endif
!if !$d(BIDSNAME)
BIDSNAME = bids
! if !$d(BIDSVER)
BIDSVER = 52
! endif
!endif
#--------------------------------------------------------------------
# debug & diagnostic flags
#--------------------------------------------------------------------
!if $d(DEBUG)
CDBG = -v -k -Od # debug-info on, normal stack, no optimizations
!endif
!if 1 || $d(DEBUG) # Leave public debug info in dll & strip to a .tds after
! if $d(WIN32)
LDBG = -v
! else
LDBG = -v -Vt
! endif
!endif
!if $d(DIAGS) # default diags use precondition, check, trace & warn
__DEBUG=2
__TRACE=1
__WARN=1
! if $d(DOS) && !$d(DLL)
BD=db # Bids Diag version mark (db for older dos libs)
! else
BD=d # Bids Diag version mark
! endif
OD=d # Owl Diag version mark
!endif
#
# Build up compiler diag switches based on settings
#
!if $d(__DEBUG)
CDIAG = -D__DEBUG=$(__DEBUG)
!endif
!if $d(__TRACE)
CDIAG = $(CDIAG) -D__TRACE
!endif
!if $d(__WARN)
CDIAG = $(CDIAG) -D__WARN
!endif
#--------------------------------------------------------------------
# dir & search paths, & precompiled headers
#--------------------------------------------------------------------
#
# BC tools BCBINDIR can be based on MAKEDIR if no BCROOT is defined
#
!if $d(BCROOT)
BCBINDIR = $(BCROOT)\bin
!else
BCBINDIR = $(MAKEDIR)
!endif
#
# Default bcroot to whatever is in bcroot.inc
#
!if !$d(BCROOT)
! include $(MAKEDIR)\bcroot.inc
!endif
!if !$d(BCROOT)
BCROOT = $(MAKEDIR)\..
!endif
#
# Where to find BC tools, libraries and include files
#
BCSRCDIR = $(BCROOT)\source
!if $d(WIN32)
BCINCDIR = $(BCROOT)\include\win32;$(BCROOT)\include
!else
BCINCDIR = $(BCROOT)\include\win16;$(BCROOT)\include
!endif
BCLIBDIR = $(BCROOT)\lib
BCBINDIR = $(BCROOT)\bin
#
# Where to find Bids dirs-- can set these for special layouts
# Build search paths differently if Bids include dir is not below BC's
#
!if !$d(BIDSSRCDIR)
BIDSSRCDIR = $(BCSRCDIR)\classlib
!endif
!if !$d(BIDSINCDIR)
BIDSINCDIR = $(BCINCDIR)
INCLUDE = $(BCINCDIR)
RCINCLUDEPATH = -i$(BCINCDIR)
!else
INCLUDE = $(BIDSINCDIR);$(BCINCDIR)
RCINCLUDEPATH = -i$(BIDSINCDIR) -i$(BCINCDIR)
!endif
!if !$d(BIDSLIBDIR)
BIDSLIBDIR = $(BCLIBDIR)
!endif
!if !$d(BIDSBINDIR)
BIDSBINDIR = $(BCBINDIR)
!endif
BIDSOBJDIR = $(BIDSSRCDIR)\o\$(BD)$(KEY) # Keep seperate diag/nondiag dirs
.PATH.obj = $(BIDSOBJDIR)
.PATH.res = $(BIDSOBJDIR)
.PATH.def = $(BIDSOBJDIR)
.PATH.lib = $(BIDSLIBDIR)
.PATH.cpp = $(BIDSSRCDIR)
.PATH.cpo = $(BIDSSRCDIR)\obsolete
#
# Define BIDSNOPCH to disable the use of Precompiled headers when building BIDS
#
!if !$d(BIDSNOPCH)
CPCH= -H=$(BIDSLIBDIR)\$(BIDSNAME)$(BD)$(KEY).csm -H"pch.h" -D_BIDSPCH -D_WSYSPCH
! if $d(WIN32) || $(__MAKE__) > 0x0370 # -Hc is not valid in earlier 16-bit
CPCH = $(CPCH) -Hc
! endif
!endif
#
# Where to find VCL libraries, objs, and headers
#
!if $d(VCL)
! if !$d(BCBROOT)
BCBROOT = $(BCROOT)
! endif
! if !$d(VCLLIBDIR)
VCLLIBDIR = $(BCBROOT)\lib
! endif
! if !$d(VCLOBJDIR)
VCLOBJDIR = $(VCLLIBDIR)\obj
! endif
! if !$d(VCLINCDIR)
VCLINCDIR = $(BCBROOT)\include\vcl
! endif
INCLUDE = $(INCLUDE);$(VCLINCDIR)
!endif
#--------------------------------------------------------------------
# library names
#--------------------------------------------------------------------
!if $d(DLL)
! if $d(VCL)
DLL32KEY = v
! else
DLL32KEY = $(MODEL)
! endif
! if $d(WIN32)
BIDSDLL = $(BIDSBINDIR)\$(BIDSDLLNAME)$(BIDSVER)$(BD)$(DLL32KEY).dll
! else
BIDSDLL = $(BIDSBINDIR)\$(BIDSDLLNAME)$(BIDSVER)$(BD).dll
! endif
BIDSDEF = bids.def
BIDSRES = version.res #bids.res
!endif
BIDSLIB = $(BIDSLIBDIR)\$(BIDSNAME)$(BD)$(KEY).lib
#
# If building for VCL, use an RTL that begins "cp" instead of "cw"
#
!if $d(VCL)
RTLPFX=cp
!else
RTLPFX=cw
!endif
#--------------------------------------------------------------------
# Options which are memory model independent
#--------------------------------------------------------------------
!if $d(NAMESPACE)
CFLAGS = $(CFLAGS) -DBI_NAMESPACE
!endif
!if $d(BI_REDEFINE_BOOL)
CFLAGS = $(CFLAGS) -DBI_REDEFINE_BOOL
!endif
#--------------------------------------------------------------------
# Tools and options for Win32
#--------------------------------------------------------------------
!if $d(WIN32)
! if $d(BCC32I)
CC = $(BCBINDIR)\bcc32i # Highly optimizing compiler
! else
CC = $(BCBINDIR)\bcc32 # Regular optimizing compiler
! endif
RCC = brcc32 -DWIN32 # Resource compiler
! if $d(ILINK)
LINK = $(BCBINDIR)\ilink32 # Linker
! else
LINK = $(BCBINDIR)\tlink32 # Linker
! endif
LIB = $(BCBINDIR)\tlib # Librarian
IMPLIB = $(BCBINDIR)\implib # Import library generator
TDSTRIP = $(BCBINDIR)\tdstrp32 # Debug info extractor
CFLAGS = $(CFLAGS) -d -k- -O1gmpv # Optimizations
! if $d(CODEGUARD) # d=add data, c=add calls, t=check this
CFLAGS = $(CFLAGS) -vGd -vGt
! if $(CODEGUARD) == 2
CFLAGS= $(CFLAGS) -vGc
! endif
! endif
CFGFILE = bcc32.cfg # Name of compiler's config file
! if $d(DEBUG)
LIBOPTS = /P512 /C
! else
LIBOPTS = /P32 /0 /C
! endif
! if $d(DLL)
CFLAGS = $(CFLAGS) -WDE -D_BUILDBIDSDLL -D_BUILDSVCSDLL -D_BUILDWSYSDLL
LFLAGS = $(LDBG) -Tpd -s -c
STDLIBS = import32 $(RTLPFX)32$(MT)i # Libs for linking the DLL
! if $d(CODEGUARD)
STDLIBS = cg32 $(STDLIBS)
! endif
STARTUP = c0d32
! else
CFLAGS = $(CFLAGS) #!TH why always windows? -W
! endif
! if $d(VCL)
CFLAGS = $(CFLAGS) -b- -Vx -Ve
LFLAGS = $(LFLAGS) -j$(VCLOBJDIR)
STDLIBS = $(STDLIBS)
! endif
! if !$d(MT)
CFLAGS = $(CFLAGS) -WM-
! endif
! if $d(VCL)
CFLAGS = $(CFLAGS) -a4
! elif $d(ALIGN)
CFLAGS = $(CFLAGS) -a$(ALIGN)
! endif
#--------------------------------------------------------------------
# Tools and options for OS/2
#--------------------------------------------------------------------
!elif $d(OS2)
CC = $(BCBINDIR)\bcc # Compiler
RCC = brcc # Resource compiler
LINK = $(BCBINDIR)\tlink # Linker
LIB = $(BCBINDIR)\tlib # Librarian
IMPLIB = $(BCBINDIR)\implib # Import library generator
TDSTRIP = $(BCBINDIR)\tdstrip # Debug info extractor
CFLAGS = $(CFLAGS) -d -k- -O1gmpv# Optimizations
CFGFILE = turboc.cfg # Name of compiler's config file
! if $d(DEBUG)
LIBOPTS = /P512 /C
! else
LIBOPTS = /P32 /0 /C
! endif
! if $d(DLL)
CFLAGS = $(CFLAGS) -WDE -D_BUILDBIDSDLL -D_BUILDSVCSDLL -D_BUILDWSYSDLL
LFLAGS = $(LDBG) -Tod -s -c
STDLIBS = c2$(MT)i os2 # Libs for linking the DLL
STARTUP = c02d
! else
CFLAGS = $(CFLAGS) -W
! endif
! if $d(MT)
CFLAGS = $(CFLAGS) -sm
! endif
#--------------------------------------------------------------------
# Tools and options for DOS / Win16
#--------------------------------------------------------------------
!elif $d(WIN16)
CC = $(BCBINDIR)\bcc # Compiler
RCC = brcc # Resource compiler
LINK = $(BCBINDIR)\tlink # Linker
RLINK = $(BCBINDIR)\rlink # Resource linker
LIB = $(BCBINDIR)\tlib # Librarian
# implib needs -o switch in 16 bit for compatibility
IMPLIB = $(BCBINDIR)\implib -o # Import library generator
TDSTRIP = $(BCBINDIR)\tdstrip # Debug info extractor
CFLAGS = $(CFLAGS) -2- -d -k- -O1gmpv # Optimizations
CFLAGS = $(CFLAGS) -m$(MODEL) # Memory Model
! if $d(DLL) && $d(CODEGUARD) # Enable compiler's CodeGuard support
CFLAGS = $(CFLAGS) -vGd -vGt
! endif
#! if $(MODEL) != s && $(MODEL) != m # Far data models can put strs in code seg
# CFLAGS=$(CFLAGS) -dc
#! endif
! if $d(BIDSFARVTABLE)
CFLAGS = $(CFLAGS) -D_BIDSFARVTABLE #;_RTLFARVTABLE
! endif
! if $d(DISABLE_EXCEPTIONS)
CFLAGS = $(CFLAGS) -DDISABLE_EXCEPTIONS -x-
! endif
CFGFILE = turboc.cfg
! if $d(DEBUG)
LIBOPTS = /P512 /C
! else
LIBOPTS = /P32 /0 /C
! endif
! if $d(DLL) # Build the 16bit DLL
# Dll, explicit export, compat excptns
CFLAGS = $(CFLAGS) -WDE -D_BUILDBIDSDLL -D_BUILDSVCSDLL -D_BUILDWSYSDLL -xc
LFLAGS = $(LDBG) -Twd -n -s -c -C -Oc -Oi -Oa -Or
STDLIBS = import crtldll # Libs for linking the DLL
!if $d(CODEGUARD)
STDLIBS = cg16 $(STDLIBS)
!endif
STARTUP = c0dl
! else
! if $(MODEL) == h
CFLAGS = $(CFLAGS) -D_Windows # Fool headers to get windows incs
! else
! if $d(USERDLL)
CFLAGS = $(CFLAGS) -WDE -xc # Build static lib for use in DLLs
! endif
! endif
! endif
! if $d(ALIGN)
CFLAGS = $(CFLAGS) -a$(ALIGN)
! endif
!else
! error No platform defined. Define one of: DOS, WIN16, WIN32, OS2
!endif
#--------------------------------------------------------------------
# Rules
#--------------------------------------------------------------------
.rc.res:
$(RCC) $(RCINCLUDEPATH) -fo$@ $.
.cpp.obj:
$(CC) {$& }
.cpo.obj:
$(CC) -P {$& }
#-----------------------------------------------------------------------------
#
# Build the various file lists needed for dependency checking,
# and LIBing.
#
# OBJS is the main list, conditionalized for the various targets
# and options.
#
# OBJS_LIB are the objs that only go in libs & implib, not the dll
#
# OBJS_DLL are the objs that only go in the dll, not the libs
#
# DEPOBJS is the list of object files for dependency checking
#
# LIBOBJS is the list of object files for building the library
#
#-----------------------------------------------------------------------------
# Old Object Container files
#
!if $d(OBJECTS)
OBJS = \
PFXassoc.obj \
PFXbtree.obj \
PFXbtreeinn.obj \
PFXbtreelfn.obj \
PFXcollect.obj \
PFXcontain.obj \
PFXdbllist.obj \
PFXhashtbl.obj \
PFXldate.obj \
PFXlist.obj \
PFXltime.obj \
PFXobject.obj
!endif
# BIDS Container files
#
OBJS = $(OBJS) \
PFXbinimp.obj \
PFXheapsel.obj
!if $d(DOS) && !$d(DLL)
OBJS = $(OBJS) PFXtimer.obj
!endif
# Class Library files
#
OBJS = $(OBJS) \
PFXcastable.obj \
PFXdate.obj \
PFXdateio.obj \
PFXdatep.obj \
PFXobjstrm.obj \
PFXtime.obj \
PFXtimep.obj \
PFXversion.obj \
PFXcmdline.obj \
PFXfile.obj \
PFXtimeio.obj \
PFXfilename.obj
#!if $(MODEL)!=h # use these files for huge model
#OBJS = $(OBJS) \
# PFXfilename.obj
#!endif
!if $d(WIN32) || $d(OS2)
OBJS = $(OBJS) PFXthread.obj
!endif
# Services Library files. Most are not needed for BorlandC++
#
OBJS = $(OBJS) \
PFXmemory.obj
# WinSys Library files (some MSW specific)
#
!if $(MODEL)!=h
OBJS = $(OBJS) \
PFXcolor.obj
!else
!endif
!if !$d(OS2)
OBJS = $(OBJS) \
PFXexbase.obj \
PFXgeometrp.obj \
PFXgeometrs.obj \
PFXgeometry.obj \
PFXsystem.obj \
PFXreglink.obj
! if $(MODEL)!=h # do not compile thse when using huge model
OBJS = $(OBJS) \
PFXdiaginit.obj \
PFXmsgthred.obj \
PFXprofile.obj \
PFXuimetric.obj \
PFXwsyscls.obj \
PFXwsysclsp.obj \
PFXwsysclss.obj
! endif
!endif
OBJS_LIB = \
PFXlocale.obj \
PFXlocaleco.obj \
PFXlocaleid.obj \
PFXustring.obj \
PFXregheap.obj \
PFXregistry.obj # needs ole2 & prev 3 need TLocaleString currently
OBJS_DLL =
!if $d(OBJECTS)
!if $d(TEMPLATES)
OBJS = $(OBJS) \
PFXbabstary.obj \
PFXbdict.obj \
PFXbsortary.obj
!else
OBJS = $(OBJS) \
PFXabstarry.obj \
PFXarray.obj \
PFXdeque.obj \
PFXdict.obj \
PFXsortarry.obj \
PFXstack.obj
!endif
!endif
!if $d(DLL)
OBJS = $(OBJS) PFXclasmain.obj
!endif
!if $d(DLL) && $d(OBJECTS)
!if $d(TEMPLATES)
OBJS = $(OBJS) PFXtmpl2.obj
!else
OBJS = $(OBJS) PFXtmpl1.obj
!endif
!endif
!if $d(DLL) && !$d(OBJECTS) && !$d(OS2)
RESFILE = version.res
!endif
DEPOBJS = $(OBJS:PFX=) $(OBJS_LIB:PFX=) $(OBJS_DLL:PFX=)
!if $d(DLL)
LIBOBJS = $(OBJS_LIB:PFX=+)
LINKOBJS = $(OBJS:PFX=) $(OBJS_DLL:PFX=)
!else
LIBOBJS = $(OBJS:PFX=+) $(OBJS_LIB:PFX=+)
!endif
#-----------------------------------------------------------------------------
# These are the targets that we can make.
#
# target: builds the target file
#
# cfgfile: builds a .CFG file with the correct flags
#-----------------------------------------------------------------------------
!if $d(DLL)
DEFFILE=deffile
!endif
target: cfgfile $(BIDSLIB)
cfgfile:
@-if not exist $(.PATH.cpp)\o\NUL md $(.PATH.cpp)\o
@-if not exist $(.PATH.obj)\NUL md $(.PATH.obj)
@copy &&|
-I$(INCLUDE)
-c -w $(CFLAGS) $(CDBG) $(CDIAG)
$(CPCH) -n$(.PATH.obj)
| $(CFGFILE) > NUL
!if $d(DLL)
$(.PATH.obj)\$(BIDSRES):
$(RCC) $&.rc @&&|
$(RCINCLUDEPATH)
| -fo$@
!if $d(WIN32)
$(BIDSLIB): $(DEPOBJS) $(.PATH.obj)\$(BIDSDEF) $(.PATH.obj)\$(BIDSRES)
@cd $(.PATH.obj)
$(LINK) @&&|
$(LFLAGS) -L$(BCLIBDIR);$(VCLLIBDIR) $(STARTUP) +
$(LINKOBJS)
$(BIDSDLL)
$(STDLIBS)
$(BIDSDEF)
$(BIDSRES)
|
!if !$d(DIAGS)
$(TDSTRIP) -s $(BIDSDLL)
!endif
$(IMPLIB) $(BIDSLIB) $(BIDSDLL)
$(LIB) $(LIBOPTS) $(BIDSLIB) @&&|
$(LIBOBJS)
|
@-del $*.bak
@cd $(.PATH.cpp)
$(.PATH.obj)\$(BIDSDEF):
@copy &&|
LIBRARY $(BIDSNAME)$(BIDSVER)$(BD) INITINSTANCE #
DESCRIPTION 'Borland Class Library for C++'
#EXETYPE WINDOWS
DATA MULTIPLE NONSHARED
| $(.PATH.obj)\$(BIDSDEF) > NUL
!else # ! WIN32
$(BIDSLIB): $(DEPOBJS) $(.PATH.obj)\$(BIDSDEF) $(.PATH.obj)\$(BIDSRES)
@cd $(.PATH.obj)
$(LINK) @&&|
$(LFLAGS) -L$(BCLIBDIR) $(STARTUP) +
$(LINKOBJS)
$(BIDSDLL)
$(STDLIBS)
$(BIDSDEF)
|
$(RLINK) @&&|
-v -31 -k $(BIDSRES) $(BIDSDLL)
|
# $(IMPLIB) -i $(BIDSLIB) $(BIDSDEF) $(BIDSDLL) #
$(IMPLIB) -i $(BIDSLIB) $(BIDSDLL)
$(LIB) $(LIBOPTS) $(BIDSLIB) @&&|
$(LIBOBJS)
|
!if !$d(DIAGS)
$(TDSTRIP) -s $(BIDSDLL)
!endif
@-del $*.bak
@cd $(.PATH.cpp)
$(.PATH.obj)\$(BIDSDEF):
@copy &&|
LIBRARY $(BIDSDLLNAME)$(BIDSVER)$(BD)
DESCRIPTION 'Borland Class Library for C++'
EXETYPE WINDOWS
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE SINGLE
HEAPSIZE 4096
EXPORTS
WEP @1 RESIDENTNAME
| $(.PATH.obj)\$(BIDSDEF) > NUL
!endif # if/else WIN32
!else # ! DLL
$(BIDSLIB): $(DEPOBJS)
@-del $(BIDSLIB)
@cd $(.PATH.obj)
$(LIB) $(LIBOPTS) $(BIDSLIB) @&&|
$(LIBOBJS)
|
@cd $(.PATH.cpp)
!endif
#-----------------------------------------------------------------------------
# We need an implicit rule for building .OBJ files, and a few
# explicit rules for special cases.
#
# TIMER.OBJ is never built for windows, so doesn't need the
# windows flags.
#-----------------------------------------------------------------------------
CFLAGS_WIN=-W $(CFLAGS_WIN)
# For pre v5.0 tools, LPCWSTR is only defined via OLE headers
#
!if $(__MAKE__) <= 0x0370
CFLAGS_WIN=$(CFLAGS_WIN) -DINC_OLE2
!endif
!if $(MODEL)==l && $d(CODEGUARD)
CFLAGS_WIN=-vGd -vGt $(CFLAGS_WIN)
!endif
!if $(MODEL)!=h
file.obj: file.cpp
$(CC) $(CFLAGS_WIN) {$& }
filename.obj: filename.cpp
$(CC) $(CFLAGS_WIN) {$& }
memory.obj: memory.cpp
$(CC) $(CFLAGS_WIN) {$& }
timeio.obj: timeio.cpp
$(CC) $(CFLAGS_WIN) {$& }
exbase.obj: exbase.cpp
$(CC) $(CFLAGS_WIN) {$& }
geometrp.obj: geometrp.cpp
$(CC) $(CFLAGS_WIN) {$& }
geometrs.obj: geometrs.cpp
$(CC) $(CFLAGS_WIN) {$& }
geometry.obj: geometry.cpp
$(CC) $(CFLAGS_WIN) {$& }
system.obj: system.cpp
$(CC) $(CFLAGS_WIN) {$& }
reglink.obj: reglink.cpp
$(CC) $(CFLAGS_WIN) {$& }
locale.obj: locale.cpp
$(CC) $(CFLAGS_WIN) {$& }
localeco.obj: localeco.cpp
$(CC) $(CFLAGS_WIN) {$& }
localeid.obj: localeid.cpp
$(CC) $(CFLAGS_WIN) {$& }
ustring.obj: ustring.cpp
$(CC) $(CFLAGS_WIN) {$& }
regheap.obj: regheap.cpp
$(CC) $(CFLAGS_WIN) {$& }
registry.obj: registry.cpp
$(CC) $(CFLAGS_WIN) {$& }
!endif
color.obj: color.cpp
$(CC) $(CFLAGS_WIN) {$& }
diaginit.obj: diaginit.cpp
$(CC) $(CFLAGS_WIN) {$& }
msgthred.obj: msgthred.cpp
$(CC) $(CFLAGS_WIN) {$& }
profile.obj: profile.cpp
$(CC) $(CFLAGS_WIN) {$& }
uimetric.obj: uimetric.cpp
$(CC) $(CFLAGS_WIN) {$& }
wsyscls.obj: wsyscls.cpp
$(CC) $(CFLAGS_WIN) {$& }
wsysclss.obj: wsysclss.cpp
$(CC) $(CFLAGS_WIN) {$& }
wsysclsp.obj: wsysclsp.cpp
$(CC) $(CFLAGS_WIN) {$& }